package com.Lacia.emsserver.pojo;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.Instant;

/**
 * @author 万里花
 * @date 2024/6/6 15:41
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class EmuData {

    /**
     * PCS实际总有功功率（单位：kW）
     */
    private Double pcsSumsActivePower;

    /**
     * PCS实际总无功功率（单位：kW）
     */
    private Double pcsSumsReactivePower;

    /**
     * 电池平均温度（单位：℃）
     */
    private Double batteryAverageTem;

    /**
     * 时间戳（单位：ms）
     */
    private Instant timeStamp;

    /**
     * 系统状态
     * 0: 停止，1: 运行
     */
    private Integer sysStatus;

    /**
     * 单堆最大允许充电功率（单位：kW）
     */
    private Double maxAllowChargPower;

    /**
     * 单堆最大允许放电功率（单位：kW）
     */
    private Double minAllowChargPower;

    /**
     * 直流母线总电压（单位：V）
     */
    private Double dcBusVol;

    /**
     * 直流母线总电流（单位：A）
     */
    private Double dcBusVur;

    /**
     * 电池状态
     * 0: 停止，1: 等待，2: 运行，3: 故障
     */
    private Integer batteryStatus;

    /**
     * 控制源
     * 0: 本地，1: 远程，2: 其他
     */
    private Integer controlSrc;

    /**
     * 可充电量（单位：kWh）
     */
    private Double emuEnChgCap;

    /**
     * 可放电量（单位：kWh）
     */
    private Double emuEnDisCap;

    /**
     * 总SOC（单位：%）
     */
    private Double sumsSOC;

    /**
     * 电池最大温差（单位：℃）
     */
    private Double batteryMaxTemDif;

    /**
     * 最高单体电压值（单位：V）
     */
    private Double maxCellVol;

    /**
     * 最低单体电压值（单位：V）
     */
    private Double minCellVol;

    /**
     * 工作模式
     * -1: 错误，0: 子系统，1: 削峰填谷，2: 本地总功率，3: 远程总功率，4: 功率调度
     */
    private Integer workMode;
}
